<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::multicalib::MultiCameraCalibration Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d8/db8/namespacecv_1_1multicalib.html">multicalib</a></li><li class="navelem"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html">MultiCameraCalibration</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../d5/da4/classcv_1_1multicalib_1_1MultiCameraCalibration-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::multicalib::MultiCameraCalibration Class Reference<div class="ingroups"><a class="el" href="../../d3/ddc/group__ccalib.html">Custom Calibration Pattern for 3D reconstruction</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Class for multiple camera calibration that supports pinhole camera and omnidirection camera. For omnidirectional camera model, please refer to <a class="el" href="../../db/d62/omnidir_8hpp.html">omnidir.hpp</a> in ccalib module. It first calibrate each camera individually, then a bundle adjustment like optimization is applied to refine extrinsic parameters. So far, it only support "random" pattern for calibration, see randomPattern.hpp in ccalib module for details. Images that are used should be named by "cameraIdx-timestamp.*", several images with the same timestamp means that they are the same pattern that are photographed. cameraIdx should start from 0.  
 <a href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#details">More...</a></p>

<p><code>#include &lt;opencv2/ccalib/multicalib.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/db0/structcv_1_1multicalib_1_1MultiCameraCalibration_1_1edge.html">edge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/db5/structcv_1_1multicalib_1_1MultiCameraCalibration_1_1vertex.html">vertex</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aad572d61658ea242e4ce1377f1c1a50a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#aad572d61658ea242e4ce1377f1c1a50aa833498d4f66baf027a178b9d299cf46b">PINHOLE</a>, 
<br />
&#160;&#160;<a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#aad572d61658ea242e4ce1377f1c1a50aa36e58b4ea6bf200b89ca9536783c5dbc">OMNIDIRECTIONAL</a>
<br />
 }</td></tr>
<tr class="separator:aad572d61658ea242e4ce1377f1c1a50a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8fefc924b521891bfe9affebefd2ccbc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#a8fefc924b521891bfe9affebefd2ccbc">MultiCameraCalibration</a> (int cameraType, int nCameras, const std::string &amp;fileName, float patternWidth, float patternHeight, int verbose=0, int showExtration=0, int nMiniMatches=20, int flags=0, <a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html">TermCriteria</a> criteria=<a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html">TermCriteria</a>(<a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html#a56fecdc291ccaba8aad27d67ccf72c57aeb9da694ea67b3ef7d524521b580867d">TermCriteria::COUNT</a>+<a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html#a56fecdc291ccaba8aad27d67ccf72c57a857609e73e7028e638d2ea649f3b45d5">TermCriteria::EPS</a>, 200, 1e-7), Ptr&lt; FeatureDetector &gt; detector=AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), Ptr&lt; DescriptorExtractor &gt; descriptor=AKAZE::create(AKAZE::DESCRIPTOR_MLDB, 0, 3, 0.006f), Ptr&lt; DescriptorMatcher &gt; matcher=DescriptorMatcher::create(&quot;BruteForce-L1&quot;))</td></tr>
<tr class="separator:a8fefc924b521891bfe9affebefd2ccbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02b88a2f282b66838e327df030c1d778"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#a02b88a2f282b66838e327df030c1d778">initialize</a> ()</td></tr>
<tr class="separator:a02b88a2f282b66838e327df030c1d778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4094252884b5da9d5f33fcaea29bb09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#ab4094252884b5da9d5f33fcaea29bb09">loadImages</a> ()</td></tr>
<tr class="separator:ab4094252884b5da9d5f33fcaea29bb09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4c4d52808b8878e134c22c09e0b5717"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#ac4c4d52808b8878e134c22c09e0b5717">optimizeExtrinsics</a> ()</td></tr>
<tr class="separator:ac4c4d52808b8878e134c22c09e0b5717"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6307a1a7d1806673e7fcb4ab0b0bf5f1"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#a6307a1a7d1806673e7fcb4ab0b0bf5f1">run</a> ()</td></tr>
<tr class="separator:a6307a1a7d1806673e7fcb4ab0b0bf5f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02695657ee01e5a5aa5746000816f050"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dc7/classcv_1_1multicalib_1_1MultiCameraCalibration.html#a02695657ee01e5a5aa5746000816f050">writeParameters</a> (const std::string &amp;filename)</td></tr>
<tr class="separator:a02695657ee01e5a5aa5746000816f050"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class for multiple camera calibration that supports pinhole camera and omnidirection camera. For omnidirectional camera model, please refer to <a class="el" href="../../db/d62/omnidir_8hpp.html">omnidir.hpp</a> in ccalib module. It first calibrate each camera individually, then a bundle adjustment like optimization is applied to refine extrinsic parameters. So far, it only support "random" pattern for calibration, see randomPattern.hpp in ccalib module for details. Images that are used should be named by "cameraIdx-timestamp.*", several images with the same timestamp means that they are the same pattern that are photographed. cameraIdx should start from 0. </p>
<p>For more details, please refer to paper B. Li, L. Heng, K. Kevin and M. Pollefeys, "A Multiple-Camera System Calibration Toolbox Using A Feature Descriptor-Based Calibration Pattern", in IROS 2013. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="aad572d61658ea242e4ce1377f1c1a50a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad572d61658ea242e4ce1377f1c1a50a">&#9670;&nbsp;</a></span>anonymous enum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aad572d61658ea242e4ce1377f1c1a50aa833498d4f66baf027a178b9d299cf46b"></a>PINHOLE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aad572d61658ea242e4ce1377f1c1a50aa36e58b4ea6bf200b89ca9536783c5dbc"></a>OMNIDIRECTIONAL&#160;</td><td class="fielddoc"></td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8fefc924b521891bfe9affebefd2ccbc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fefc924b521891bfe9affebefd2ccbc">&#9670;&nbsp;</a></span>MultiCameraCalibration()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::multicalib::MultiCameraCalibration::MultiCameraCalibration </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cameraType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nCameras</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>patternWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>patternHeight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verbose</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>showExtration</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMiniMatches</em> = <code>20</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>flags</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html">TermCriteria</a>&#160;</td>
          <td class="paramname"><em>criteria</em> = <code><a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html">TermCriteria</a>(<a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html#a56fecdc291ccaba8aad27d67ccf72c57aeb9da694ea67b3ef7d524521b580867d">TermCriteria::COUNT</a>+<a class="el" href="../../d9/d5d/classcv_1_1TermCriteria.html#a56fecdc291ccaba8aad27d67ccf72c57a857609e73e7028e638d2ea649f3b45d5">TermCriteria::EPS</a>,&#160;200,&#160;1e-7)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d9b/group__features2d.html#ga15e1361bda978d83a2bea629b32dfd3c">FeatureDetector</a> &gt;&#160;</td>
          <td class="paramname"><em>detector</em> = <code><a class="el" href="../../d8/d30/classcv_1_1AKAZE.html#aee9025aea852275a424e1b5934c79103">AKAZE::create</a>(<a class="el" href="../../d8/d30/classcv_1_1AKAZE.html#a6f44619b9c9a25be4526de5b665ca690a929fb7e01bc6a4e8e7a1449ee0731c86">AKAZE::DESCRIPTOR_MLDB</a>,&#160;0,&#160;3,&#160;0.006f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d9b/group__features2d.html#gadd5cf7c76865f14468cfdd9cc08eb990">DescriptorExtractor</a> &gt;&#160;</td>
          <td class="paramname"><em>descriptor</em> = <code><a class="el" href="../../d8/d30/classcv_1_1AKAZE.html#aee9025aea852275a424e1b5934c79103">AKAZE::create</a>(<a class="el" href="../../d8/d30/classcv_1_1AKAZE.html#a6f44619b9c9a25be4526de5b665ca690a929fb7e01bc6a4e8e7a1449ee0731c86">AKAZE::DESCRIPTOR_MLDB</a>,&#160;0,&#160;3,&#160;0.006f)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html">DescriptorMatcher</a> &gt;&#160;</td>
          <td class="paramname"><em>matcher</em> = <code><a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html#ab5dc5036569ecc8d47565007fa518257">DescriptorMatcher::create</a>(&quot;BruteForce-<a class="el" href="../../d4/d7f/structcv_1_1L1.html">L1</a>&quot;)</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a02b88a2f282b66838e327df030c1d778"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02b88a2f282b66838e327df030c1d778">&#9670;&nbsp;</a></span>initialize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::multicalib::MultiCameraCalibration::initialize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ab4094252884b5da9d5f33fcaea29bb09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4094252884b5da9d5f33fcaea29bb09">&#9670;&nbsp;</a></span>loadImages()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::multicalib::MultiCameraCalibration::loadImages </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac4c4d52808b8878e134c22c09e0b5717"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac4c4d52808b8878e134c22c09e0b5717">&#9670;&nbsp;</a></span>optimizeExtrinsics()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double cv::multicalib::MultiCameraCalibration::optimizeExtrinsics </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a6307a1a7d1806673e7fcb4ab0b0bf5f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6307a1a7d1806673e7fcb4ab0b0bf5f1">&#9670;&nbsp;</a></span>run()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double cv::multicalib::MultiCameraCalibration::run </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a02695657ee01e5a5aa5746000816f050"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02695657ee01e5a5aa5746000816f050">&#9670;&nbsp;</a></span>writeParameters()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::multicalib::MultiCameraCalibration::writeParameters </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/ccalib/<a class="el" href="../../d6/d51/multicalib_8hpp.html">multicalib.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:48 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
